package com.zdft.promotion.receipts.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import lombok.Data;

/**
 * WARE_RECEIPTS
 * 
 * @author dxh
 */
@Data
public class ReceiptsDto implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 越库标识 1、越库
	 */
	private int crossFlag;

	/**
	 * 收货单编号
	 */
	private Long id;

	/**
	 * 1=采购入库，3=调拨入库，4=门店退货入库,5=渠道退货入库
	 */
	@NotNull(message = "入库类型不能为空")
	private Integer type;

	/**
	 * 订单编号 入库时，用户在UI上查询，输入
	 */
	@NotNull(message = "订单编号不能为空")
	private Long poId;

	/**
	 * 采购单供应商编号
	 */
	private String vendorId;

	/**
	 * 采购单供应商编号
	 */
	private String creditId;

	/**
	 * 订单责任人
	 */
	private String responsible;

	/**
	 * 供应商送货单编号
	 */
	private Long vspId;

	/**
	 * 仓库编号 指送货时的接收仓库，即送货地址
	 */
	@NotNull(message = "接收仓库不能为空")
	private Long repositoryId;

	/**
	 * 状态0=新建；1=入库确认；2=质检确认；3=归库确认
	 */
	private Integer status;

	/**
	 * 创建人
	 */
	private String createUser;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 订单折扣率
	 */
	private BigDecimal discountRate;

	/**
	 * 运费 从原订单中取
	 */
	private BigDecimal freight;

	/**
	 * 税率
	 */
	private BigDecimal totalTax;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 费用清单
	 */
	private BigDecimal moneyInvoice;

	/**
	 * 已申请运费
	 */
	private BigDecimal freightIssued;

	/**
	 * 目的仓储单元编号/客户
	 */
	@NotNull(message = "目的仓储单元编号/客户不能为空")
	private String repositoryBourn;

	/**
	 * 前置库供应商编号
	 */
	private String pretankVendorId;

	/**
	 * 数据类型 空，普通越库入库数据 1,2B越库入库数据
	 */
	private Integer dataType;

	/**
	 * 入库详情列表
	 */
	@NotNull(message = "入库商品信息不能为空")
	@Valid
	private List<ReceiptsDetailDto> detailList;
}